package Test;

import java.util.ArrayList;

// 这个包用于在考试的时候，测试一些语法，或者测试单元性功能
// JProfiler与OOM 测试如下：
public class TestUtils {
    byte[] arr = new byte[1*1024*1024]; // 1MB

    public static void main(String[] args) {
        ArrayList<Object> list = new ArrayList<>();
        int count = 0;

        try{
            // 测试通过JProfile查看OOM是什么情况
            // Dump
            /*
            * ---------------------------------------------
            * VM options里加参数：
            * -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
            * 参数分析：
            * -Xms 设置初始化内存分配大小 默认为电脑内存的1/64
            * -Xmx 设置最大分配内存 默认为电脑内存的1/4
            * -XX:+PrintGCDetails 打印GC清理垃圾信息
            * -XX:+HeapDumpOnOutOfMemoryError 生成OOM时的dump文件
            * ---------------------------------------------
            * 然后得到结果：
            * java.lang.OutOfMemoryError: Java heap space
              Dumping heap to java_pid71447.hprof ...
              Heap dump file created [5515476 bytes in 0.012 secs]
            * ---------------------------------------------
            * 然后分析结果：
            * 首先找到Dump文件
            * 左侧 open in finder
            * 然后使用JProfiler打开并分析
            * 使用完以后，记得删掉dump文件及打开dump以后生成的文件夹（里面有一堆文件）
            * ---------------------------------------------
            * */
            while(true){
                list.add(new TestUtils());
                count++;
            }
        }catch (Exception e){
            System.out.println("count:"+count);
        }



    }
}
